package com.management.service;

import com.management.po.Materials;
import com.management.vo.MaterialsVO;

import java.util.List;

/**
 * @author dff
 * 物品库存表业务逻辑接口
 */
public interface MaterialsService {
    /**
     * 查询物品库存列表
     * @return  库存列表对象
     */
    public List<MaterialsVO> findAll();

    /**
     * 通过物品编号查询物品对象
     * @param materialsId 物品编号
     * @return 物品对象
     */
    public MaterialsVO findByMaterialsId(int materialsId);

    /**
     * 通过公司id查询该公司的物品列表
     * @param companyId 公司id
     * @return 公司物品列表
     */
    public List<MaterialsVO> findByCompanyId(int companyId);

    /**
     * 通过物品种类查询该物品种类的列表
     * @param materialsTypeId 物品种类id
     * @return 物品种类列表
     */
    public List<Materials> findByMaterialsTypeId(int materialsTypeId);

    /**
     * 通过物品存放仓库id查询该仓库的物品列表
     * @param warehouseId 仓库id
     * @return 仓库的物品列表
     */
    public List<Materials> findByWarehouseId(int warehouseId);

    /**
     * 通过物品单位id查询该单位的物品列表
     * @param materialsUnitId 单位id
     * @return 单位的物品列表
     */
    public List<Materials> findByMaterialsUnitId(int materialsUnitId);

    /**
     * 增加一个物品库存
     * @param materials 物品库存对象
     * @return 受影响的行数
     */
    public int add(Materials materials);

    /**
     * 修改一个物品库存
     * @param materials 物品库存对象
     * @return 受影响的行数
     */
    public boolean update(Materials materials);
}
